package com.lulin.mall.product.web;

import com.lulin.mall.product.service.SkuInfoService;
import com.lulin.mall.product.vo.SpuItemVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.concurrent.ExecutionException;

/**
 * 商品详情页控制器
 *
 * @author lulin
 * @date 2022/12/2 9:59
 */
@Controller
public class ProductDetailsController {

    @Autowired
    private SkuInfoService skuInfoService;

    /**
     * 点击商品，根据sku 跳转到商品详情页
     * 根据前端传递的skuId，需要查询出商品信息
     * 1、sku的基本信息。pms_sku_info表
     * 2、sku的图片信息。pms_sku_images
     * 3、spu中，销售属性的组合。
     * 4、根据spuId，获取SPU的详细信息
     * 5、spu的规格参数信息。
     * 因此，需要封装一个VO对象
     *
     * @param skuId 商品sku编号
     */
    @GetMapping("/{skuId}.html")
    public String item(@PathVariable Long skuId, Model model) throws ExecutionException, InterruptedException {
        //
        SpuItemVO spuItemVO = skuInfoService.item(skuId);
        //存到域中
        model.addAttribute("item", spuItemVO);
        return "item";
    }
}
